$(function(){
	if($_GET['profile'] == 'me'){
		$_GET['user_id'] = ME_ID;
	}

	var userListTbody = $('#user-list-table tbody'),
		EditorMenu = { //改变用户组页面菜单
			'放弃': function(){
				history.back(-1);
			},
			'提交': function(){
				$('#user-edit-tabs a').eq(0).click();
				$('#user-edit-form').find(':submit').click();
			}
		},
		ListMenu = { //列表页面菜单
			'上一页': function(){
				$_GET['page'] -= 1;
				getUserList();
			},
			'下一页': function(){
				$_GET['page'] += 1
				getUserList();
			},
			'编辑': function(){
				var id = userListTbody.find('.active').eq(0).data('id');
				location.search = '?action=update&user_id='+id;
			},
			'删除': function(){
				userListTbody.editMulti({
					obj: 'user',
					act: 'delete',
					unit: '位',
					action: '删除',
					item: '用户',
					callback: function(){
						getUserList(true);
					}
				});
			}
		},
		showListMenu = function(){ //显示列表菜单
			var length = userListTbody.find('.active').length;
			if(!TOTAL || TOTAL == 1){
				var menu = null;
			}else if($_GET['page'] == 1){
				var menu = PAGES == 1 ? null : {'下一页': ListMenu['下一页']};
			}else if($_GET['page'] == PAGES){
				var menu = {'上一页': ListMenu['上一页']};
			}else{
				var menu = {
					'上一页': ListMenu['上一页'],
					'下一页': ListMenu['下一页']
				};
			}
			if(length){
				if(length == 1){
					menu = $.extend(menu || {}, {'编辑': ListMenu['编辑']});
				}
				menu = $.extend(menu || {}, {'删除': ListMenu['删除']});
			}
			$.showMenu(menu);
		},
		getUserList = function(noAlert){ //获取用户列表数据
			$.ajax({
				url: SITE_URL+'mod.php?obj=user&act=getMulti&'+$.param($_GET), 
				success: function(result){
					userListTbody.html('');
					if(result.success){
						var data = result.data,
							id = 1 + ($_GET['page'] - 1) * $_GET['limit'],
							gender = {male: '男', female: '女'};
						for(var i in data){
							userListTbody.append('<tr><td data-id="'+data[i].user_id+'">'+id+'</td><td><a title="查看" href="users.html?user_id='+data[i].user_id+'">'+data[i].user_name+'</a></td><td>'+data[i].user_nickname+'</td><td>'+(gender[data[i].user_gender] || '')+'</td><td>'+data[i].user_email+'</td></tr>');
							id++;
						}
						TOTAL = result.total;
						PAGES = result.pages;
						showListMenu();
					}else if(!noAlert){
						alert(result.data);
					}
				},
				error: function(xhr){
					console.log(xhr);
					alert('与服务器的连接出现错误，用户信息获取失败。');
				}
			});
		};

	/** 显示菜单 */
	if($_GET['action']){
		$('select, :checkbox, :radio').change(function(){
			$.showMenu(EditorMenu);
		});
		$('input, textarea').on('input', function(){
			$.showMenu(EditorMenu);
		});
		$('#user_name').focus();
	}else if(!$_GET['user_id']){
		showListMenu();
	}

	/** 点击列表项时对其进行高亮 */
	userListTbody.on('click', 'td', function(){
		$(this).closest('tr').toggleClass('active');
		showListMenu();
	});

	/** 点击列表选项卡时获取指定级别的用户 */
	$('#user-list-tabs a[href="javascript:;"]').click(function(event){
		event.preventDefault();
		$(this).parent('li').addClass('active').siblings('li').removeClass('active');
		if($(this).data('level')){
			$_GET['user_level'] = $(this).data('level');
		}else{
			delete $_GET['user_level'];
		}
		getUserList(true);
	});

	/** 点击改变用户组页面选项卡时切换页面 */
	$('#user-edit-tabs a').click(function(){
		var $this = $(this),
			id = $this.data('id');
		$(this).parent('li').addClass('active').siblings('li').removeClass('active');
		$('#'+id).siblings('div, table').hide();
		$('#'+id).fadeIn('fast');
	});

	/** 点击选择头像按钮时预览头像 */
	$('#select-avatar').click(function(){
		var $this = $(this);
		$this.button('loading');
		$.upload({
			preview: '#user-avatar',
			success: function(){
				$('#user-avatar').show();
				$.showMenu(EditorMenu);
				$this.button('reset').text('更换');
			}
		});
	});

	/** 切换密码框 type 属性 */
	$('#old_password, #user_password').focus(function(){
		if(!$(this).val()) $(this).attr('type', 'password');
	});

	$('#user-edit-tabs a[data-id="set-protection"]').click(function(){
		$('#set-protection').find('input[type="text"]').eq(0).focus();
	});

	/** 提交用户改变用户组表单 */
	$('#user-edit-form').submit(function(event){
		event.preventDefault();
		var avatarImg = $('#user-avatar'),
			$this = $(this);
			submit = function(){
				var data = $this.serialize().replace(/\+/g, '%20');
				$.ajax({
					url: $this.attr('action'), 
					type: 'post',
					data: data, 
					success: function(result){
						if(result.success){
							alert($_GET['action'] == 'update' ? '修改成功。' : '添加成功');
							history.back(-1);
						}else{
							alert(result.data);
						}
					},
					error: function(xhr){
						console.log(xhr);
						alert('与服务器的连接出现错误，用户信息修改失败。');
					}
				});
			};

		/** 如果修改了头像，将其上传到服务器 */
		if(avatarImg.attr('src') != avatarImg.attr('data-origin')){
			$.upload({
				url: SITE_URL+'mod.php?file::upload',
				data: {'file_desc': '用于头像的图片。'},
				success: function(result){
					if(result.success){
						$this.find('input[name="user_avatar"]').val(result.data[0].file_src);
						submit(); //提交表单
					}else{
						$('#user-edit-tabs a[data-id="set-avatar"]').click();
						if(typeof result.data == 'string'){
							alert(result.data);
						}else{
							alert(result.data[0].error);
						}
					}
				},
				error: function(xhr){
					alert('与服务器的连接出现错误，文件上传失败。');
					console.log(xhr.responseText);
				}
			});
			return true;
		}else{
			submit(); //提交表单
		}
	});
});